"""
# -*- coding: utf-8 -*-
# @Time    : 2023/3/6 14:34
# @Author  : 王摇摆
# @FileName: mean_suqre_error.py
# @Software: PyCharm
# @Blog    ：https://blog.csdn.net/weixin_44943389?type=blog
"""
import numpy    as np


# 均方误差损失函数的设计
def mean_suqre_error(x, t):
    y = 0.5 * np.sum((x - t) ** 2)
    return y


# 测试数据
y1 = [0.5, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]  # 表示神经网络的输出，结果值就是概率
y2 = [0.1, 0.05, 0.5, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]  # 表示神经网络的输出，结果值就是概率
t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]  # 表示监督数据，将正确的解的标签打在这个数组上

# 将测试数据矩阵化
new_y1 = np.array([y1])
new_y2 = np.array([y2])
new_t = np.array([t])

result1 = mean_suqre_error(new_y1, new_t)
result2 = mean_suqre_error(new_y2, new_t)

print(result1)
print(result2)

if result1 > result2:
    result = 'y2'
    label = np.argmax(a=y2)
else:
    result = 'y1'
    label = np.argmax(a=y1)

print(result + '的测试结果正确' + '\n')
print('正确的值的位置是： ' + str(label))
